package com.chunfeng.mypen.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chunfeng.mypen.entity.Permission;
import com.chunfeng.mypen.result.JsonRequest;

import java.util.List;

/**
 * 权限业务层接口
 *
 * @author by 春风能解释
 * <p>
 * 2023/11/18
 */
public interface PermissionService extends IService<Permission> {
    /**
     * 分类查询权限
     *
     * @param current    当前页
     * @param size       每页长度
     * @param permission 分类
     * @return JSON
     */
    JsonRequest<List<Permission>> lookPermission(Integer current, Integer size, Permission permission);

    /**
     * 根据单个路由的详细信息查询该路由对应的权限信息
     *
     * @param uri    请求路径
     * @param method 请求方法
     * @return JSON
     */
    JsonRequest<List<Permission>> lookPermissionOfOneRouter(String uri, String method);

    /**
     * 根据单个用户信息查看一个
     *
     * @param id 用户名
     * @return JSON
     */
    JsonRequest<List<Permission>> lookPermissionOfOneUser(String id);

    /**
     * 根据单个角色信息查看一个
     *
     * @param rid 角色ID
     * @return JSON
     */
    JsonRequest<List<Permission>> lookPermissionOfOneRole(String rid);

    /**
     * 新增一条权限数据
     *
     * @param permission 权限信息
     * @return JSON
     */
    JsonRequest<Integer> insertOnePermission(Permission permission);

    /**
     * 修改一条权限数据
     *
     * @param permission 待修改的权限信息
     * @return JSON
     */
    JsonRequest<Integer> updateOnePermission(Permission permission);

    /**
     * 批量删除权限
     *
     * @param permissionId 权限ID
     * @return JSON
     */
    JsonRequest<Integer> deletePermissions(List<String> permissionId);
}
